package com.utilities;

import android.content.Context;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteDatabase.CursorFactory;
import android.database.sqlite.SQLiteOpenHelper;

public class HWGSQLiteHelper extends SQLiteOpenHelper {
 
    //Sentencia SQL para crear la tabla de Usuarios
    String sqlCreate = "CREATE TABLE Notas (id INTEGER PRIMARY KEY, nota TEXT)";
    String sqlCreateLista = "CREATE TABLE Lista (idlista INTEGER PRIMARY KEY, lista TEXT)";
    String sqlCreateGastos = "CREATE TABLE Gastos " +
    				"(idgasto INTEGER PRIMARY KEY,idlista INTEGER, gasto TEXT, cantidad TEXT, fechahora TEXT)";
    String sqlCreateFotos = "CREATE TABLE Fotos " +
    				"(idfoto INTEGER PRIMARY KEY, nombre TEXT, comentario TEXT)";
    String sqlCreateDetalle = "CREATE TABLE Detalle (id INTEGER PRIMARY KEY, poi_idr INTEGER, poi_nombre TEXT, poi_foto TEXT," +
    		"poi_direccion TEXT, poi_metro TEXT, poi_metrobus TEXT, poi_servicios TEXT, poi_clasificacion TEXT, poi_www TEXT, " +
    		"poi_mail TEXT, poi_tel TEXT, poi_lat TEXT, poi_lng TEXT, poi_idioma TEXT, poi_ruta TEXT, poi_horario TEXT, " +
    		"poi_costo TEXT, poi_descripcion TEXT, poi_cuentaporcentaje TEXT, poi_entradalibre TEXT, poi_encabezado TEXT, bitmapfoto BLOB)";
    String sqlCreateAudio = "CREATE TABLE Audio (id INTEGER PRIMARY KEY, audio_subtitulo TEXT, audio_archivo TEXT)";
    String sqlVisitadas = "CREATE TABLE Visitadas (id INTEGER PRIMARY KEY, poi_id TEXT)";
    String sqlFavoritas = "CREATE TABLE Favoritas (id INTEGER PRIMARY KEY, poi_id TEXT)";


    public HWGSQLiteHelper(Context contexto, String nombre,
                               CursorFactory factory, int version) {
        super(contexto, nombre, factory, version);
    }
 
    @Override
    public void onCreate(SQLiteDatabase db) {
        //Se ejecuta la sentencia SQL de creación de la tabla
        db.execSQL(sqlCreate);
        db.execSQL(sqlCreateLista);
        db.execSQL(sqlCreateGastos);
        db.execSQL(sqlCreateFotos);
        db.execSQL(sqlCreateDetalle);
        db.execSQL(sqlCreateAudio);
        db.execSQL(sqlVisitadas);
        db.execSQL(sqlFavoritas);
    }
 
    @Override
    public void onUpgrade(SQLiteDatabase db, int versionAnterior, int versionNueva) {
        //NOTA: Por simplicidad del ejemplo aquí utilizamos directamente la opción de
        //      eliminar la tabla anterior y crearla de nuevo vacía con el nuevo formato.
        //      Sin embargo lo normal será que haya que migrar datos de la tabla antigua
        //      a la nueva, por lo que este método debería ser más elaborado.
 
        //Se elimina la versión anterior de la tabla
        db.execSQL("DROP TABLE IF EXISTS Notas");
        db.execSQL("DROP TABLE IF EXISTS Lista");
        db.execSQL("DROP TABLE IF EXISTS Gastos");
        db.execSQL("DROP TABLE IF EXISTS Fotos");

        db.execSQL("DROP TABLE IF EXISTS Detalle");
        db.execSQL("DROP TABLE IF EXISTS Audio");
        
        db.execSQL("DROP TABLE IF EXISTS Visitadas");
        db.execSQL("DROP TABLE IF EXISTS Favoritas");
 
        //Se crea la nueva versión de la tabla
        db.execSQL(sqlCreate);
        db.execSQL(sqlCreateLista);
        db.execSQL(sqlCreateGastos);
        db.execSQL(sqlCreateFotos);

        db.execSQL(sqlCreateDetalle);
        db.execSQL(sqlCreateAudio);
        
        db.execSQL(sqlVisitadas);
        db.execSQL(sqlFavoritas);

    }
}